package cn.tedu.eb_film.service;

import cn.tedu.eb_film.pojo.dto.MovieExcelDTO;
import cn.tedu.eb_film.pojo.dto.MovieTypeAddDTO;
import cn.tedu.eb_film.pojo.dto.MovieTypeUpdateDTO;
import cn.tedu.eb_film.pojo.entity.MovieType;
import cn.tedu.eb_film.pojo.vo.MovieListVO;
import cn.tedu.eb_film.pojo.vo.MovieTypeListVO;
import cn.tedu.eb_film.pojo.vo.MovieTypeStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 电影类型的service接口
 * @author diaojie
 * @since 2023/03/29 13:55:52
 */
@Transactional(rollbackFor=Exception.class)
public interface MovieTypeService {
    /**
     * 类别“是否启用”的状态文本
     */
    String[] ENABLE_TEXT = {"禁用", "启用"};

    /**
     * 新增电影类型
     * @param movieTypeAddDTO 电视类型数据
     */
    void addNew(MovieTypeAddDTO movieTypeAddDTO);

    /**
     * 新增电影类型
     * @param list 类型数据
     */
    void insetBash(List<MovieTypeAddDTO> list);


    /**
     * 根据id删除电影类型
     * @param id 电影类型id
     */
    void deleteById(Integer id);

    /**
     * 更新电影类型
     * @param id 修改电影类型的id
     * @param movieTypeUpdateDTO 电影类型数据
     */
    void updateInfoById(Integer id, MovieTypeUpdateDTO movieTypeUpdateDTO);

    /**
     * 启用类别
     *
     * @param id 尝试启用的类别的id
     */
    void setEnable(Integer id);

    /**
     * 禁用类别
     *
     * @param id 尝试禁用的类别的id
     */
    void setDisable(Integer id);


    /**
     * 根据id查询电影类型数据
     * @param id 电影类型id
     * @return 电影类型数据
     */
    MovieTypeStandardVO getStandardById(Integer id);


    /**
     * 查询电影类型列表
     * @return 电影类型数据
     */
    List<MovieTypeListVO> list();

    /**
     * 根据搜索条件查询电影类型列表
     * @param name 搜索条件
     * @return 电影类型数据

     */
    List<MovieTypeListVO> listSearch(String name);
}
